package com.woniuxy.goods.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.woniuxy.goods.dto.BrandDto;
import com.woniuxy.goods.entity.Brand;
import com.baomidou.mybatisplus.extension.service.IService;
import com.woniuxy.goods.param.AddBrandParam;
import com.woniuxy.goods.param.FindBrandsParam;
import com.woniuxy.goods.param.UpdateBrandParam;

import java.util.List;
import java.util.Set;

/**
 * <p>
 *  服务类
 * </p>
 * 品牌管理服务层接口
 * @author ...
 * @since 2024年05月22日
 */
public interface BrandService extends IService<Brand> {

    /**
     * 新增品牌
     * @param param 新增品牌对象
     * @return 品牌信息
     * @throws Exception
     */
    Brand addBrand(AddBrandParam param) throws Exception;

    /**
     * 修改品牌
     * @param param 修改品牌对象
     * @return 品牌信息
     * @throws Exception
     */
    Brand updateBrand(UpdateBrandParam param) throws Exception;

    /**
     * 条件查询品牌
     * @param param 条件查询品牌对象
     * @return 分页品牌信息
     * @throws Exception
     */
    IPage<BrandDto> findBrands(FindBrandsParam param);

    /**
     * 通过id查询品牌
     * @param brandId 品牌id
     * @return 品牌信息
     * @throws Exception
     */
    Brand findBrandById(Integer brandId);

    /**
     * 通过ids查询品牌
     * @param brandIds 品牌id集合
     * @return 品牌信息集合
     * @throws Exception
     */
    List<Brand> findBrandByIds(Set<Integer> brandIds);

}
